package integer;

/**
 * java中的基本类型不具有面向对象的特征,因此无法直接参与面向对象开发.
 * 对此,java为8个基本类型设计了对应的包装类,可以让基本类型以对象的形式存在.
 * 基本类型          包装类
 * byte             java.lang.Byte
 * short            java.lang.Short
 * int              java.lang.Integer
 * long             java.lang.Long
 * float            java.lang.Float
 * double           java.lang.Double
 * char             java.lang.Character
 * boolean          java.lang.Boolean
 */
public class IntegerDemo1 {
    public static void main(String[] args) {
        int a = 123;
        /*
            基本类型转换为对应的包装类:将基本类型以对象形式体现出来
         */
//        Integer i1 = new Integer(a);
//        Integer i2 = new Integer(a);
        //java建议我们使用包装类的静态方法valueOf将基本类型转换为他对应的包装类
        Integer i1 = Integer.valueOf(a);
        Integer i2 = Integer.valueOf(a);

        System.out.println(i1==i2);//false
        System.out.println(i1.equals(i2));//true


        double dou = 123.123;
        Double d1 = Double.valueOf(dou);
        System.out.println(d1);


        //从包装类转换为基本类型
        /*
            数字类型的包装类支持将其表示的数字转换为所有数字基本类型
            对应的方法:
            int intValue()
            double doubleValue()
            float floatValue()
            ...
         */
        int i = i1.intValue();
        System.out.println("i:"+i);
        double dd = i1.doubleValue();//将Integer包装类中保存的整数以double类型返回
        System.out.println("dd:"+dd);//123.0

    }
}
